package cc.jq1024.domain.strategy.service;

import cc.jq1024.domain.strategy.model.valobj.StrategyAwardStockKeyVO;

/**
 * @Author: jia-qiang ljq1024.cc
 * @desc: 抽奖库存相关服务，获取库存消耗队列
 * @Date: 2024-04-18-21:06
 */
public interface IRaffleStock {
    /**
     * 获取奖品库存消耗队列
     *
     * @return 奖品库存Key信息
     */
    StrategyAwardStockKeyVO takeQueueValue() ;

    /**
     * 清空队列
     */
    void clearQueueValue();

    /**
     * 更新奖品库存消耗记录
     *
     * @param strategyId 策略ID
     * @param awardId    奖品ID
     */
    void updateStrategyAwardStock(Long strategyId, Long awardId);


    /**
     * 缓存库存已消耗完毕，清空数据库库存
     *
     * @param strategyId 策略ID
     * @param awardId 奖品ID
     */
    void clearStrategyAwardStock(Long strategyId, Long awardId);
}
